package com.常用类.StringBuffer_;

/**
 * 作    者 ：吾路巴尼
 * 创建时间 ：2025/2/25-20:49
 */
public class StringBuffer_ {
    public static void main(String[] args) {
        /**StringBuffer是线程安全的，适用于多线程， 而StringBuilder是线程不安全的，适用于单线程。
         * String Buffer的父类是AbstractStringBuilder
         * String Buffer是final 类，不能被继承；
         * StringBuffer的构造方法：
         * public StringBuffer(String str) {
         *         super(str);  //存放在父类AbstractStringBuilder的 byte[] value数组中；
         *     }  //StringBuffer的value数组是存放在堆中；跟String存放在常量池的不一样；
         */
        StringBuffer s1 = new StringBuffer("haha");
//        传入字符串,将字符串传入到父类AbstractStringBuilder的value数组中；
        System.out.println(s1);
        /**
         * String与StringBuffer的区别：StringBuffer比String高效；
         * 1.StringBuffer的内容是可变的；
         * String每次传入不同的字符串，都会在常量池创建一个新的String对象，让引用指向新的String对象；
         * 而StringBuffer不用每次创建新的对象，只有当空间不够用的时候才创建新的对象，将原来的引用指向新的地址；（自动扩容）
         */

    }
}
